<?php if ( ! defined("BASEPATH")) exit("No direct script access allowed");

class modulo extends CI_Controller {
		
	public function __construct(){
		parent::__construct();
		init_painel();
		esta_logado();
	}

	public function index(){
		$this->gerenciar();
	}
	
	public function cadastrar(){
		$this->form_validation->set_rules('nome', 'NOME DA PERMISSÃO', 'required');
		if ($this->form_validation->run()==TRUE):
			$dado = elements(array('nome'), $this->input->post(NULL, TRUE));
			$this->permissao_grupo->do_insert($dado, FALSE);
			//localizar ultimo id inserido
			$query_permissao_grupo = $this->permissao_grupo->get_ultimo()->row();
			$dados['permissao_grupo_id'] = $query_permissao_grupo->id;
			$dados['created'] = date('Y-m-d H:i:s');
			$query_modulo = $this->modulo->get_all()->result();
			foreach ($query_modulo as $linha_modulo):
				$dados['gerenciar'] = ($this->input->post('gerenciar'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
				$dados['cadastrar'] = ($this->input->post('cadastrar'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
				$dados['alterar'] = ($this->input->post('alterar'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
				$dados['excluir'] = ($this->input->post('excluir'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
				$dados['baixar'] = ($this->input->post('baixar'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
				$dados['estornar'] = ($this->input->post('estornar'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
				$dados['modulo_id'] = $linha_modulo->id;
				$this->permissao->do_insert($dados, FALSE);
			endforeach;
			set_msg('msgok', 'Cadastro efetuado com sucesso', 'sucesso');
			redirect(current_url());
		endif;
		$data = array(
			'tela' 	=> 'cadastrar'
		);
		set_tema('footerinc', load_js(array('app.min')));
		set_tema('titulo', 'Cadastro de Parcelamento');
		set_tema('conteudo', load_modulo('painel', 'modulo', $data));
		load_template();
	}

	public function gerenciar(){
		$data = array(
			'tela' => 'gerenciar',
			'query' => $this->permissao_grupo->get_all()->result()
		);
		set_tema('headerinc', load_css(array('datatables/dataTables.foundation.min')));
		set_tema('footerinc', load_js(array('datatables/jquery.dataTables.min', 'datatables/dataTables.foundation.min', 'app.min')));
		set_tema('titulo', 'Listagem de Formas de Pagamento');
		set_tema('conteudo', load_modulo('painel', 'modulo', $data));
		load_template();
	}

	public function editar(){
		$this->form_validation->set_rules('nome', 'NOME DA PERMISSÃO', 'required');
		if ($this->form_validation->run()==TRUE):
			$dado = elements(array('nome'), $this->input->post(NULL, TRUE));
			$this->permissao_grupo->do_update($dado, array('id'=>$this->input->post('id', TRUE)));
			//localizar todos os modulos
			$query_modulo = $this->modulo->get_all()->result();
			foreach ($query_modulo as $linha_modulo):
				//localizar grupo de permissão
				$grupo_id = $this->input->post('id');
				//localizar as opção dos botões
				$query_permissao = $this->permissao->get_by_modulo_permissao($grupo_id, 'permissao_grupo_id', $linha_modulo->id , 'modulo_id')->result();
				foreach ($query_permissao as $linha_permissao):
					$dados['gerenciar'] = ($this->input->post('gerenciar'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
					$dados['cadastrar'] = ($this->input->post('cadastrar'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
					$dados['alterar'] = ($this->input->post('alterar'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
					$dados['excluir'] = ($this->input->post('excluir'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
					$dados['baixar'] = ($this->input->post('baixar'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
					$dados['estornar'] = ($this->input->post('estornar'.$linha_modulo->link, TRUE)==1) ? 1 : 0;
					$this->permissao->do_update($dados, array('modulo_id'=>$linha_modulo->id, 'permissao_grupo_id' => $grupo_id));
				endforeach;
			endforeach;
		endif;
		$idgrupo = $this->uri->segment(4);
		if ($idgrupo == NULL):
			set_msg('msgerro', 'Escolha um grupo de permissão para alterar.', 'erro');
			redirect('painel/modulo/gerenciar');
		endif;
		$data = array(
			'tela'	=> 'editar',
			'query'	=> $this->permissao_grupo->get_byid($this->uri->segment(4))->row()
		);
		set_tema('footerinc', load_js(array('maskmoney/jquery.maskMoney.min', 'maskmoney/maskmoney-script.min', 'maskedinput/maskedinput-script.min', 'maskedinput/jquery.maskedinput.min',  'app.min')));
		set_tema('titulo', 'Alteração modulos');
		set_tema('conteudo', load_modulo('painel', 'modulo', $data));
		load_template();
	}

	public function excluir(){
		if (is_admin(TRUE)):
			$idmodulo = $this->uri->segment(4);
			if ($idmodulo != NULL):
				$administradores = $this->usuarios->get_byid($idmodulo, 'permissao_grupo_id');
				if($administradores->num_rows() > 0):
					set_msg('msgerro', 'Este módulo de permissão está vinculado a algum administrador.', 'erro');
					redirect(base_url('painel/modulo/gerenciar'));
				endif;
				$this->permissao_grupo->do_delete(array('id'=>$idmodulo), FALSE);
				$this->permissao->do_delete(array('permissao_grupo_id'=>$idmodulo), FALSE);
				set_msg('msgok', 'Registro excluído com sucesso', 'sucesso');
			else:
				set_msg('msgerro', 'Escolha um  atributo para excluir', 'erro');
			endif;
		endif;
		redirect('painel/modulo/gerenciar');
	}
	
}

/* End of file modulo.php */
/* Location: ./application/controllers/modulo.php */